package ${mapStructPackage};

import org.mapstruct.Mapper;
import java.util.List;
import ${package.Entity}.${entity};
<#if enableVo>
import ${pojoPackageName}.vo.${pojoVOName};
</#if>
<#if enableDto>
import ${pojoPackageName}.dto.${pojoDTOName};
</#if>
<#if enableForm>
import ${pojoPackageName}.saveform.${pojoSaveFormName};
import ${pojoPackageName}.updateform.${pojoUpdateFormName};
</#if>
<#--导入映射类-->
<#--类注释-->
/**
* <p>
* ${table.comment!}对象映射器
* </p>
*
* @author ${author}
* @since ${date}
*/
<#--注解-->
@Mapper(componentModel = "spring")
public interface ${pojoMapStructName} {
<#--Entity转VO-->
<#if enableVo>

    ${pojoVOName} ${entity?uncap_first}2VO(${entity} ${entity?uncap_first});

    List<${pojoVOName}> ${entity?uncap_first}2VO(List<${entity}> ${entity?uncap_first}List);
</#if>
<#--Entity转DTO-->
<#if enableDto?? && enableDto>

    ${pojoDTOName} ${entity?uncap_first}2DTO(${entity} ${entity?uncap_first});

    List<${pojoDTOName}> ${entity?uncap_first}2DTO(List<${entity}> ${entity?uncap_first}List);
</#if>
<#--DTO转VO-->
<#if enableDto?? && enableDto && enableVo>

    ${pojoDTOName} ${pojoVOName?uncap_first}2DTO(${pojoVOName} ${pojoVOName?uncap_first});

    List<${pojoDTOName}> ${pojoVOName?uncap_first}2DTO(List<${pojoVOName}> ${pojoVOName?uncap_first}List);
</#if>
<#--SaveForm 转 Entity-->
<#if enableForm>

    <#--SaveForm-->
    ${entity} ${pojoSaveFormName?uncap_first}2Entity(${pojoSaveFormName} ${pojoSaveFormName?uncap_first});

    List<${entity}> ${pojoSaveFormName?uncap_first}2Entity(List<${pojoSaveFormName}> ${pojoSaveFormName?uncap_first}List);

    <#--UpdateForm-->
    ${entity} ${pojoUpdateFormName?uncap_first}2Entity(${pojoUpdateFormName} ${pojoUpdateFormName?uncap_first});

    List<${entity}> ${pojoUpdateFormName?uncap_first}2Entity(List<${pojoUpdateFormName}> ${pojoUpdateFormName?uncap_first}List);
</#if>
}
